Release 10.1A: OpenEdge Development:
AppBuilder
SmartBusinessObject
The SmartBusinessObject allows you to neatly package and fully synchronize—including the ability to update in a single, server-side transaction—up to twenty SmartDataObjects. Figure 4–2 illustrates the place of a SmartBusinessObject in a Web-enabled application.
Figure 4–2: SmartBusinessObject in a Web environment
![]()
Each static SmartDataObject produces and manages a single data stream. The nature and composition of that data stream is dependent on the query that you define within the object. Although you can cause a single SmartDataObject to produce a data stream of great complexity by the skillful use of
JOINs, the result is often messy and difficult to use for business purposes.One way to reduce complexity is to create a number of SmartDataObjects, each with a more simple query, and then synchronize them at the application level. For example, you might create five SmartDataObjects that respectively supply:
Figure 4–3 illustrates these relationships.
Figure 4–3: Data relationship among five tables
![]()
Synchronizing their read operations is not difficult. You can use
DATASmartLinks for that purpose regardless of whether you use a SmartBusinessObject.The difficult task is synchronizing updates. In general, there is no simple way to update multiple, standalone SmartDataObjects in a single transaction, if the objects run in a distributed environment. Such objects operate independently of one another on an AppServer.
The new SmartBusinessObject solves this problem by providing a single context for all the SmartDataObjects you embed in it. Because the code you write in the SmartBusinessObject can operate on all the
RowObjecttemp-tables belonging to its subordinate SmartDataObjects, the SmartBusinessObject allows you to perform updates in a single server-side transaction. With the SmartBusinessObject, you can create and manage integrated data streams that are as complex and powerful as your customers’ business needs demand.The SmartBusinessObject presents a single point of contact for external modules such as Smart data-display objects. Internally, it uses its
CONTAINERlinks to connect those external objects with the SmartDataObjects it contains—communicating navigation instructions from a SmartPanel, for example, or sending data out to a SmartDataViewer for visualization. This all happens automatically; you need do nothing to make it work. The SmartDataObjects synchronize themselves usingDATAlinks that you create.
|
Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |